#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<list>
#include<deque>
#include<vector>
#include<algorithm>
using namespace std;
#include"queue.h"
#include"stack.h"
#include"priority_queue.h"

template <class T>
class Less
{
public:
	bool operator()(const T& x, const T& y)
	{
		return x < y;
	}
};


//template<class T>
//class Greater
//{
//public:
//	bool operator()(const T& x, const T& y)
//	{
//		return x > y;
//	}
//};
//
//
//int main()
//{
//	//test::queue<int, list<int>> q1;
//	//test::stack<int, vector<int>> st;
//	test::priority_queue<int, vector<int>, Greater<int>> pq;
//	pq.push(3);
//	pq.push(1);
//	pq.push(5);
//	pq.push(6);
//	pq.push(4); 
//	pq.push(0);
//	vector<int> v = { 3,1,5,6,4,0 };
//	test::priority_queue<int, vector<int>> q(v.begin(), v.end());
//	//test::priority_queue<int, vector<int>, Greater<int>> q1(pq.begin(), pq.end());
//	
//	/*while (!pq.empty())
//	{
//		cout << pq.top() << " ";
//		pq.pop();
//	}
//	cout << endl;*/
//
//	/*while (!q1.empty())
//	{
//		cout << q1.top() << " ";
//		q1.pop();
//	}
//	cout << endl;*/
//
//	while (!q.empty())
//	{
//		cout << q.top() << " ";
//		q.pop();
//	}
//	cout << endl;
//	return 0;
//}


class Greater
{
public:
	bool operator()(const int& x, const int& y)
	{
		return x > y;
	}
};

int main()
{
	vector<int> v = { 1,9,3,6,7,5,8,2 };
	Greater com;
	std::sort(v.begin(), v.end());
	for (auto e : v)
	{
		cout << e << " ";
	}
	cout << endl;
	return 0;
}